/**
 */
package org.mro.grib.model.files.secondEdition.sections;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Master Table Version Number</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getMasterTableVersionNumber()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Code table 1.0 \u2013 GRIB master tables version number'"
 * @generated
 */
public enum MasterTableVersionNumber implements Enumerator {
	/**
	 * The '<em><b>EXPERIMENTAL</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #EXPERIMENTAL_VALUE
	 * @generated
	 * @ordered
	 */
	EXPERIMENTAL(0, "EXPERIMENTAL", "Experimental"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 07 11 2001</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_07_11_2001_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_07_11_2001(1, "VERSION_OF_07_11_2001", "VERSION_OF_07_11_2001"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 04 11 2003</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_04_11_2003_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_04_11_2003(2, "VERSION_OF_04_11_2003", "VERSION_OF_04_11_2003"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 02 11 2005</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_02_11_2005_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_02_11_2005(3, "VERSION_OF_02_11_2005", "VERSION_OF_02_11_2005"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 07 11 2007</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_07_11_2007_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_07_11_2007(4, "VERSION_OF_07_11_2007", "VERSION_OF_07_11_2007"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 04 11 2009</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_04_11_2009_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_04_11_2009(5, "VERSION_OF_04_11_2009", "VERSION_OF_04_11_2009"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 15 09 2010</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_15_09_2010_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_15_09_2010(6, "VERSION_OF_15_09_2010", "VERSION_OF_15_09_2010"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 04 05 2011</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_04_05_2011_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_04_05_2011(7, "VERSION_OF_04_05_2011", "VERSION_OF_04_05_2011"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 02 11 2011</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_02_11_2011_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_02_11_2011(8, "VERSION_OF_02_11_2011", "VERSION_OF_02_11_2011"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 02 05 2012</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_02_05_2012_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_02_05_2012(9, "VERSION_OF_02_05_2012", "VERSION_OF_02_05_2012"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>VERSION OF 07 11 2012</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_07_11_2012_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_07_11_2012(10, "VERSION_OF_07_11_2012", "VERSION_OF_07_11_2012"), /**
	 * The '<em><b>VERSION OF 08 05 2013</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_08_05_2013_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_08_05_2013(11, "VERSION_OF_08_05_2013", "VERSION_OF_08_05_2013"), /**
	 * The '<em><b>VERSION OF 14 11 2013</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_14_11_2013_VALUE
	 * @generated
	 * @ordered
	 */
	VERSION_OF_14_11_2013(12, "VERSION_OF_14_11_2013", "VERSION_OF_14_11_2013"), //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>PRE OPERATIONAL</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PRE_OPERATIONAL_VALUE
	 * @generated
	 * @ordered
	 */
	PRE_OPERATIONAL(13, "PRE_OPERATIONAL", "PRE_OPERATIONAL"); //$NON-NLS-1$ //$NON-NLS-2$

	/**
	 * The '<em><b>EXPERIMENTAL</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>EXPERIMENTAL</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #EXPERIMENTAL
	 * @model literal="Experimental"
	 * @generated
	 * @ordered
	 */
	public static final int EXPERIMENTAL_VALUE = 0;

	/**
	 * The '<em><b>VERSION OF 07 11 2001</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 07 11 2001</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_07_11_2001
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 7 November 2001'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_07_11_2001_VALUE = 1;

	/**
	 * The '<em><b>VERSION OF 04 11 2003</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 04 11 2003</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_04_11_2003
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 4 November 2003'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_04_11_2003_VALUE = 2;

	/**
	 * The '<em><b>VERSION OF 02 11 2005</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 02 11 2005</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_02_11_2005
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 2 November 2005'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_02_11_2005_VALUE = 3;

	/**
	 * The '<em><b>VERSION OF 07 11 2007</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 07 11 2007</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_07_11_2007
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 7 November 2007'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_07_11_2007_VALUE = 4;

	/**
	 * The '<em><b>VERSION OF 04 11 2009</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 04 11 2009</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_04_11_2009
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 4 November 2009'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_04_11_2009_VALUE = 5;

	/**
	 * The '<em><b>VERSION OF 15 09 2010</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 15 09 2010</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_15_09_2010
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 15 September 2010'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_15_09_2010_VALUE = 6;

	/**
	 * The '<em><b>VERSION OF 04 05 2011</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 04 05 2011</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_04_05_2011
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 4 May 2011'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_04_05_2011_VALUE = 7;

	/**
	 * The '<em><b>VERSION OF 02 11 2011</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 02 11 2011</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_02_11_2011
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 2 November 2011'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_02_11_2011_VALUE = 8;

	/**
	 * The '<em><b>VERSION OF 02 05 2012</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 02 05 2012</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_02_05_2012
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 2 May 2012'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_02_05_2012_VALUE = 9;

	/**
	 * The '<em><b>VERSION OF 07 11 2012</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 07 11 2012</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_07_11_2012
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 7 November 2012'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_07_11_2012_VALUE = 10;

	/**
	 * The '<em><b>VERSION OF 08 05 2013</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 08 05 2013</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_08_05_2013
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 5 May 2013'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_08_05_2013_VALUE = 11;

	/**
	 * The '<em><b>VERSION OF 14 11 2013</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>VERSION OF 14 11 2013</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #VERSION_OF_14_11_2013
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Version implemented on 14 November 2013'"
	 * @generated
	 * @ordered
	 */
	public static final int VERSION_OF_14_11_2013_VALUE = 12;

	/**
	 * The '<em><b>PRE OPERATIONAL</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PRE OPERATIONAL</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PRE_OPERATIONAL
	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Pre-operational to be implemented by next amendment'"
	 * @generated
	 * @ordered
	 */
	public static final int PRE_OPERATIONAL_VALUE = 13;

	/**
	 * An array of all the '<em><b>Master Table Version Number</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final MasterTableVersionNumber[] VALUES_ARRAY =
		new MasterTableVersionNumber[] {
			EXPERIMENTAL,
			VERSION_OF_07_11_2001,
			VERSION_OF_04_11_2003,
			VERSION_OF_02_11_2005,
			VERSION_OF_07_11_2007,
			VERSION_OF_04_11_2009,
			VERSION_OF_15_09_2010,
			VERSION_OF_04_05_2011,
			VERSION_OF_02_11_2011,
			VERSION_OF_02_05_2012,
			VERSION_OF_07_11_2012,
			VERSION_OF_08_05_2013,
			VERSION_OF_14_11_2013,
			PRE_OPERATIONAL,
		};

	/**
	 * A public read-only list of all the '<em><b>Master Table Version Number</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<MasterTableVersionNumber> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Master Table Version Number</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static MasterTableVersionNumber get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			MasterTableVersionNumber result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Master Table Version Number</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static MasterTableVersionNumber getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			MasterTableVersionNumber result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Master Table Version Number</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static MasterTableVersionNumber get(int value) {
		switch (value) {
			case EXPERIMENTAL_VALUE: return EXPERIMENTAL;
			case VERSION_OF_07_11_2001_VALUE: return VERSION_OF_07_11_2001;
			case VERSION_OF_04_11_2003_VALUE: return VERSION_OF_04_11_2003;
			case VERSION_OF_02_11_2005_VALUE: return VERSION_OF_02_11_2005;
			case VERSION_OF_07_11_2007_VALUE: return VERSION_OF_07_11_2007;
			case VERSION_OF_04_11_2009_VALUE: return VERSION_OF_04_11_2009;
			case VERSION_OF_15_09_2010_VALUE: return VERSION_OF_15_09_2010;
			case VERSION_OF_04_05_2011_VALUE: return VERSION_OF_04_05_2011;
			case VERSION_OF_02_11_2011_VALUE: return VERSION_OF_02_11_2011;
			case VERSION_OF_02_05_2012_VALUE: return VERSION_OF_02_05_2012;
			case VERSION_OF_07_11_2012_VALUE: return VERSION_OF_07_11_2012;
			case VERSION_OF_08_05_2013_VALUE: return VERSION_OF_08_05_2013;
			case VERSION_OF_14_11_2013_VALUE: return VERSION_OF_14_11_2013;
			case PRE_OPERATIONAL_VALUE: return PRE_OPERATIONAL;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private MasterTableVersionNumber(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //MasterTableVersionNumber
